/* Copyright (c) 2004-2024 Peigen.info. All rights reserved. */

package info.peigen.hotpot.business.customer.facade.order.authentication;

import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertRole;
import info.peigen.hotpot.business.customer.facade.enums.auth.CustomerCertSubject;
import info.peigen.hotpot.business.customer.facade.order.base.CustomerServiceOrderBase;
import info.peigen.hotpot.common.core.domain.Address;
import info.peigen.hotpot.common.core.enums.CertType;
import info.peigen.hotpot.common.core.enums.YesOrNo;
import lombok.*;
import lombok.experimental.Accessors;
import lombok.experimental.FieldDefaults;
import lombok.experimental.SuperBuilder;

import java.util.Date;
import java.util.List;

import static info.peigen.hotpot.common.core.enums.YesOrNo.N;

/**
 * <b>(CustomerApplyAuthenticationOrder)</b>
 *
 * @author Peigen
 * @version 1.0.0
 * @since 2021/7/29
 */
@EqualsAndHashCode(callSuper = true)
@SuperBuilder
@Data
@NoArgsConstructor
@AllArgsConstructor
@FieldDefaults(level = AccessLevel.PRIVATE)
@Accessors(chain = true)
public class CustomerApplyAuthenticationOrder extends CustomerServiceOrderBase {
    String              customerId;
    /** 姓名 */
    String              name;
    /** 地址 */
    Address             address;
    /** 企业名称 */
    String              enterpriseName;
    /** 企业人数 */
    String              enterpriseScale;
    /** 企业英文名称 */
    String              enterpriseEnglishName;
    /** 营业执照照片 */
    String              enterpriseBusinessLicense;
    /** 统一社会信用代码 */
    String              uniformSocialCreditCode;
    /** 认证方式 */
    CustomerCertSubject customerCertSubject;
    /** 经营范围 */
    String              businessScope;
    /** 业务经营国家/地区 */
    String              businessArea;
    /** 企业规模/人数 */
    String              businessScale;
    /** 历史出口额 */
    String              historyExportAmount;
    /** 预估年出口额 */
    String              estimateYearExportAmount;
    /** 手持开户申请表 */
    String              holdingAccountApplyingImage;
    /** 手持开户申请表（原件） */
    String              holdingAccountApplyingOriginImage;
    /** 成立日期 */
    Date                establishmentDate;
    /** 营业期限 */
    Date                operatingPeriod;
    /** 是否长期 */
    @Builder.Default
    YesOrNo operatingPeriodOfValidityLongTerm = N;
    /** 认证身份信息 */
    List<CustomerApplyAuthenticationIdentity> identities;
    /** 认证身份角色 */
    CustomerCertRole                          customerCertRole;
    /** 证件类型 */
    CertType                                  customerCertType;


    /** 实际经营地址-是否与注册地相同 */
    @Builder.Default
    YesOrNo isBusinessRegister = N;
    /** 实际经营地址-省/州 */
    String businessProvince;
    /** 实际经营地址-省/州code */
    String businessProvinceCode;
    /** 实际经营地址-城市 */
    String businessCity;
    /** 实际经营地址-城市Code */
    String businessCityCode;
    /** 实际经营地址-区县 */
    String businessDistrict;
    /** 实际经营地址-区县Code */
    String businessDistrictCode;
    /** 实际经营地址-街道 */
    String businessStreet;
}
